// // forEach
// Array.prototype.myForEach = function(callback, thisArg) {
//     let len = this.length;
//     for (let i = 0; i < len; i++) {
//         if (Object.prototype.hasOwnProperty.call(this, i)) {
//             callback.call(thisArg, this[i], i, this);
//         }
//     }
// }

// // map
// Array.prototype.myMap = function(callback, thisArgs) {
//     let len = this.length;

//     let result = [];

//     for (let i = 0; i < len; i++) {
//         if (Object.prototype.hasOwnProperty.call(thisArgs, this[i], i, this));
//         result[i] = callback.call(thisArgs, this[i], i, this);
//     }
//     return result;
// }



// 1.
// const arrayFlatten = function (arr) {
//     // TODO
//     return arr.reduce((prev, cur) => {
//         return prev.concat(Array.isArray(cur) ? arrayFlatten(cur) : cur);
//     }, []);

// }

// // 测试case：
// console.log(arrayFlatten([1, 2, 3, 4, 5, [1, 3, 3], [1, [2, 3], [56, [12]]]]
// ));
// // [1, 2, 3, 4, 5, 1, 3, 3, 1, 2, 3, 56, 12]

// 2.
const sum = (arr) => {
    // TODO
    let result = 0;
    for (let i = 0; i < arr.length; i++) {
        if (typeof arr[i] === 'number') {
            result += arr[i];
        }
    }
    return result;
};

// case验证：
const arr = [1, 2, 3, 4, 5, 1, 3, 3, 1, 2, 3, 56, 12];
const rst = sum(arr);
console.log(rst);
